﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace WCS.Infrastructure.Dto.Request.ReportForm
{
    /// <summary>
    /// 报表统计对象
    /// </summary>
    public class ReportFormRequestDto
    {

        /// <summary>
        /// 报表类型 0=日报表 1=周报表 2=月报表
        /// </summary>
        public int ReportFormType { get; set; }

        /// <summary>
        /// 商户ID
        /// </summary>
        public string? MerchantId { get; set; }

        /// <summary>
        /// 门店ID
        /// </summary>
        public string? StoreId { get; set; }

        /// <summary>
        /// 收款码ID
        /// </summary>
        public string? CodeId { get; set; }

        /// <summary>
        /// 实收金额
        /// </summary>
        public long ActualReceivedAmount { get; set; } = 0;

        /// <summary>
        /// 收款金额
        /// </summary>
        public long CollectedAmount { get; set; } = 0;

        /// <summary>
        /// 收款数量
        /// </summary>
        public long CollectedCount { get; set; } = 0;

        /// <summary>
        /// 退款金额
        /// </summary>
        public long RefundAmount { get; set; } = 0;

        /// <summary>
        /// 退款数量
        /// </summary>
        public long RefundCount { get; set; } = 0;

        /// <summary>
        /// 结算金额
        /// </summary>
        public long SettlementAmount { get; set; } = 0;

        /// <summary>
        /// 优惠总额
        /// </summary>
        public long CouponAmount { get; set; } = 0;

        /// <summary>
        /// 查询日期时间
        /// </summary>
        public DateTime SelectDateTime { get; set; }

        /// <summary>
        /// 查询开始时间
        /// </summary>
        public DateTime? BeginTime { get; set; }

        /// <summary>
        /// 查询结束时间
        /// </summary>
        public DateTime? EndTime { get; set; }

        /// <summary>
        /// 收款码排行榜
        /// </summary>
        public List<PaymentCodeRankingRequestDto> PaymentCodeRanking { get; set; } = new List<PaymentCodeRankingRequestDto>();

        /// <summary>
        /// 收入对比统计
        /// </summary>
        public List<IncomeComparisonStatisticsRequestDto> IncomeComparisonStatistics { get; set; } = new List<IncomeComparisonStatisticsRequestDto>();

        /// <summary>
        /// 优惠订单统计
        /// </summary>
        public List<DiscountedOrdersRequestDto> DiscountedOrders { get; set; } = new List<DiscountedOrdersRequestDto>();

        /// <summary>
        /// 分账金额对比统计
        /// </summary>
        public List<IncomeComparisonStatisticsRequestDto> DividedAmountComparisonStatistics { get; set; } = new List<IncomeComparisonStatisticsRequestDto>();

        /// <summary>
        /// 顾客新老对比统计
        /// </summary>
        public List<CustomerComparisonRequestDto> CustomerComparisonStatistics { get; set; } = new List<CustomerComparisonRequestDto>();

        /// <summary>
        /// 微信支付金额
        /// </summary>
        public long WechatAmount { get; set; } = 0;

        /// <summary>
        /// 微信支付笔数
        /// </summary>
        public long WechatCount { get; set; } = 0;
        /// <summary>
        /// 支付宝支付金额
        /// </summary>
        public long AlipayAmount { get; set; } = 0;

        /// <summary>
        /// 支付宝支付笔数
        /// </summary>
        public long AlipayCount { get; set; } = 0;


    }
}
